import { getCurUser, getDicData, getLastDay, formatTime } from '@/utils'
import { getDictionary } from '@/api/common'
import { getBranch } from '@/api/company'
import { AxiosResponse } from 'axios'

// import type { FormInstance } from 'element-plus'
import { getCustomerList } from '@/api/customer'
import { useI18n } from '../web/useI18n'

const { t } = useI18n()
/***********************************************************************************
 * @description: 用於生成報表店鋪選項數據
 * @return {*} 店鋪列表
 ***********************************************************************************/
export const useInitStateBranchList = async () => {
  // 獲取當前用戶的tenantId
  const data = getCurUser() as any
  const tenantId = data.tenantId
  // 根據公司ID查詢分行信息
  const branchList = await getBranch(tenantId).then((res: AxiosResponse) => {
    const temp = res.data // 從分行信息裏得到分行列表數據
    temp.unshift({ nameChi: '全部', nameEng: 'All', branchId: 'all' }) // 將新字符串加在分行列表前面，作爲“全部”的ID
    return temp
  })
  return branchList
}

/***********************************************************************************
 * @description: 用於生成報表貸款類型選項數據
 * @return {*} 貸款類型
 ***********************************************************************************/
export const useInitStateLoanTypeList = async () => {
  //貸款類別
  const loanTypeList = await getDictionary({ dicKeyList: 'loanType' }).then((res) => {
    // 獲取當前用戶當前貸款類別並賦值給options選項
    const temp = getDicData(res.data, 'LoanType')
    temp.unshift({ showText: '全部', showCn: '全部', showEn: 'All', pkId: 'all' }) // 將新字符串加在分行列表前面，作爲“全部”的ID
    return temp
  })
  return loanTypeList
}

/***********************************************************************************
 * @description: 生成默認選擇日期為當前月1號至最後一日的數據
 * @return {*}
 ***********************************************************************************/
export const useInitDate = () => {
  // 初始化收款日期
  const date = new Date()
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const lastDay = getLastDay(year, month)
  const formDate = [
    formatTime(`${year}-${month}-01`, 'yyyy-MM-dd'),
    formatTime(`${year}-${month}-${lastDay}`, 'yyyy-MM-dd')
  ] as any
  return formDate
}

/***********************************************************************************
 * @description: 用於生成客戶信息選項數據
 * @return {*} {customersList,customers}
 ***********************************************************************************/
export const useInitCustomersList = async () => {
  const { data } = await getCustomerList({ key: '' })
  // 存放客戶列表
  const customersList = data
  // 表單——客戶信息SelectOptions
  const customers = JSON.parse(JSON.stringify(data))
  customers.unshift({ custId: null, custName: t('common.all') })
  return {
    customersList,
    customers
  }
}
